As electronic and computer technology continues to evolve, communication of information to a user at all times becomes increasingly important. For example, now more than ever users of personal digital assistants (PDAs) are continuously checking email, looking-up contacts, drafting documents on-the-go, and scheduling. Other users are utilizing mobile phones with built-in PDAs. In addition to these new devices, more and more users are using tablet PCs and notebook computers. The mobility of the powerful computing devices makes them ideal for the business traveler. A general computing system for a mobile device will now be described.
A. Computing System
FIG. 1 shows an embodiment of a mobile computing system 100. The computing system includes a Central Processing Unit (CPU) 101, a cache 102, a memory controller and bridge 103 and a system memory 104. Software instructions performed by the computing system (and its corresponding data) are stored in the system memory 104 and cache 102 (where frequently used instructions and data are stored in cache 102). The software instructions (together with corresponding data) are executed by the CPU 101. The memory controller portion of the memory controller and bridge function 103 is responsible for managing access to the system memory 104 (which may be used by functional elements other than the CPU 101 such as the graphics controller 105 and various I/O units).
The graphics controller 105 and display 106 provide the computer generated images observed by the user of the computing system 100. The bridge portion of the memory controller and bridge function 103 provides a system bus 107 that multiple Input/Output (I/O) units 1081 through 108N may use to communicate with one another, the CPU 101, the system memory 104, etc. Here, I/O units are typically viewed as functional units that send/receive information to/from the computing system (e.g., a networking adapter, a MODEM, a wireless interface, a keyboard, a mouse, etc.) and/or function units used for storing information within the computing system 100 (e.g., a hard disk drive unit). Note that the depiction of FIG. 1 is exemplary and other computing system architectures are possible (e.g., multiprocessor computing systems, for example).
Notably other bus structures (not shown in FIG. 1 for simplicity), such as a Universal Serial Bus (USB) bus, may be used to couple a keyboard, mouse and other lower performance peripherals. Also, “parallel” and/or “serial” ports (again not shown in FIG. 1 for simplicity) may also be viewed as additional I/O units.
B. Computing System State Diagram
FIG. 2 shows a prior art state diagram for a computing system 100. An embodiment of the operating states observed in FIG. 2 may be found in the Advanced Configuration and Power Interface (ACPI) specification, Revision 2.0a dated Mar. 31, 2002 (and published by Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd., and Toshiba Corporation). Although the ACPI specification is recognized as describing a large number of existing computing systems, it should be recognized that large numbers of computing systems that do not conform to the ACPI specification can still conform to the operating state configuration observed in FIG. 2. As such, the description of FIG. 1 corresponds to a more generic description that the ACPI specification conforms to.
According to the depiction of FIG. 2 a first state 201, referred to as the “normal on” state 201, is the normal operating state of the computer (i.e., the state of the computer when it is actively powered and is being (or is ready to be) used by a user). The ACPI specification refers to the normal on state 201 as the “G0” state. A second state 202 refers to any of one or more states where the computing system is recognized as being “off”. The ACPI specification recognizes two such states: a hardware based off state (e.g., where power has been removed from the entire system) and a software based off state (where power is provided to the system but the BIOS and operating system (OS) have to be reloaded from scratch without reference to the stored context of a previously operating environment). The ACPI specification refers to the hardware based off state as the “G3” state and the software based off state as the “G2” state.
A third state 203 refers to any of one or more states where the computing system is recognized as “sleeping”. For sleep states, the operating environment of a system within the “normal on” state 201 (e.g., the state and data of various software routines) are saved prior to the CPU of the computer being entered into a lower power consumption state. The sleep state(s) 203 are aimed at saving power consumed by the CPU over a lull period in the continuous use of the computing system. That is, for example, if a user is using a computing system in the normal on state 201 (e.g., typing a document) and then becomes distracted so as to temporarily refrain from such use (e.g., to answer a telephone call)—the computing system can automatically transition from the normal on state 201 to a sleep state 202 to reduce system power consumption.
Here, the software operating environment of the computing system (e.g., including the document being written), which is also referred to as “context” or “the context”, is saved beforehand. As a consequence, when the user returns to use the computing system after the distraction is complete, the computing system can automatically present the user with the environment that existed when the distraction arose (by recalling the saved context) as part of the transition back to the normal state 201 from the sleep state 203. The ACPI specification recognizes a collection of different sleep states (notably the “S1”, “S2”, “S3” and “S4” states each having its own respective balance between power savings and delay when returning to the “normal on” state 201 (here, the S1, S2 and S3 states are recognized as being various flavors of “standby” and the S4 state is a “hibernate” state).
A problem with prior art sleep states, however, is that the CPU is unable to perform any useful work. As such, although power savings are recognized, any tasks that may have been useful to perform during the time period over which the computing system was sleeping are impossible to implement.
Furthermore, most mobile devices are always carried on or near the user. Laptops are typically transported in cases and are essentially dead weight while users are moving. A similar situation occurs with tablet PC users.